class Solution {
public:
    int wiggleMaxLength(vector<int>& nums) {
        //摆动序列是前后两个差值，正负交替
        //子序列，可以去掉相等的值
        int n=nums.size();
        if(n<2) return n;
        int left=0,right=0;           //他们表示正负，表示增还是减
        int ret=0;
        for(int i=0;i<n-1;i++)      //少弄一个，所以后面加1
        {
            right=nums[i+1]-nums[i];            //增加还是减少(差值正负)
            //出现1 7 4 4 4 3 就是中间有相同值时，应该跳过
            if(right==0) continue;
            //核心代码
            if((left<=0&&right>=0)||(left>=0&&right<=0))               //开始时都为0
            {
                ret++;
            }
            left=right;                 //更新left

        }
        return ret+1;
    }
};